SlideShare a Scribd company logo
1 of 131
阪田 浩一 (さかた こういち)
@jyukutyo じゅくちょー
フリュー株式会社
元塾講師アルバイト
関西Javaエンジニアの会(関ジャバ) 会長!?
2009年秋 発足
2014年11月 JUG入り
SI(客先常駐) 9年 / 自社サービス 5年目
blog : Fight the Future http://jyukutyo.hatenablog.com
昨年(2015年)のJJUG CCC 2015 Springでも話しました
http://www.slideshare.net/jyukutyo/jjug-ccc-2015ab4
2016/9/26にSeasar2は
サポートを終了する!
DBFlute DBFlute.NET Doma
Emecha Mayaa S2Container.NE
T
S2Dao.NET
以下を除いた全プロダクトが
EOLとなります!
つまりJavaでの
Seasar2関連は
ほとんどが対象
このセッションは、
それを受けて
プロジェクトで
移行を始めた
事例の紹介です
今日のゴール
対象 S2で開発/運用している人
提供したい
こと
対象の人たちがS2から
移行する際の参考事例
注意事項
“ベスト”プラクティスでは
ないこと
まずは結論から
結果:Springに移行
2016年2月にリリース
移行前 移行後
プレゼンテー
ション層 Cubby 2.0
Spring MVC
2.4.3
永続化層 S2Dao 1.0.51 Doma 2.6.0
コンポーネント
フレームワーク S2 2.4.43 Spring 2.4.3
ただし、2月に
リリースしたのは
あくまで1機能のみ
リリース内容は
同一機能の
リプレース
その後
さらにいくつか
リプレースした
2016年5月現在
3機能がSpringで
動作している
そんな状況です
今日
お話しすること
結果に至るまでのこと
“なぜ”Spring/Domaなのか?
“どのようにして”移行したのか?
“何に”詰まった/困ったのか?
なぜSpring/Doma
なのか?
WebSocketやSSEを(楽に)使いたい
Java 8に移行したので、
それに対応するFWにしたい
長期間、同じ運用開発をしているので、
メンバーの飽きを防ぎたい
ただし移行の緊急性は高くない
(ように思う)
そもそもS2から移行する
必要があるのか?
こうした理由に至った
僕らの背景を
簡単にご紹介します
(あくまで理解の
補助として)
対象アプリケーション
サービス名 ピクトリンク
サービス
イン
2011年
(前身サービスはもっと以前から)
利用者数
1,000万人
女子高生の70%は会員
(有料会員数は秘密)
主な機能
プリントシール機で撮影した画像を
取得できる
提供
Webサイト
iOSアプリ/Androidアプリ
課金
携帯電話キャリア課金 / 楽天ID決済
iOS課金 / Android課金
PageView 月間約1億PV
備考:プリントシール機とは
ゲームセンターや
ショッピングモールにある
写真を撮影をする機械。
女性の利用が多い。
開発チーム構成
サイトチーム 6名
• 私がリーダを担当
アプリチーム 7名
• iOS
• Android
• Web API
インフラチーム 5名
• サーバ
• ネットワーク
• Ansible
• Elasticsearch/Ki
bana
• Oracle RAC
ログチーム 3名
• Tableau
• BigQuery
HTML/CSS 2名
• デザインをHTML
に
合計23名
私はサービスインの
半年後に
参画しました
23名という人数と
開発開始から
5年以上経過している、
そういう状況
10年くらい標準だったよう
S2、S2Struts、Cubby、S2Daoなど
ただし、ここ5年ほど私の部署以外では
新規プロジェクトでScalaを採用
全社的に標準が
S2ファミリーだった
言語はJavaとする
運用開発チームの特性上、FWだけでなく
言語も変わると、メンバーが対応できない
日々の工数すべてを移行に避けない
機能改善/追加と並行に作業する
アプリケーションを作り直さない
テスト手順が煩雑なキャリア課金がメインのため
移行先FWの前提条件
All or Nothingの移行は
やっぱり
リスクが高すぎる!
(ように思う)
まずは移行先となる
フレームワーク(FW)
を調査する
移行先FWで調査した候補
Spring
Spring MVC
Spring Boot
Java EE
JSF
JAX-RS
Jersey MVC
Play Framework
Spark Framework
Jodd
Ninja
Doma
JOOQ
JDBI
Bootiful SQL Template
A simple SQL template
engine for Spring Boot
考えたこと:
もうトレードオフで
判断するしかない
S2、Cubby、S2Daoとそれほど
考え方が離れていないFWとする
学習にかけられる期間、工数を最小限に
今あるサービスクラスを
(少なくとも多少コードを書けば)
利用できるFWとする
トレードオフで重視したこと
Servletで動作するFWとする
既存のWebアプリと同一のWARファイルに
監視会社へ監視依頼する数が増えない
コストが増えない
同一のアプリケーションとなりシンプル
アプリケーション間で連携するのは複雑そう
トレードオフで重視したこと
みなさんの
プロジェクトでは、
どんな前提条件や
どんなことを
重視しますか?
そして、
僕らの判断理由は
決定:Spring MVC + Doma!
プレゼンテー
ション層
Spring MVC
2.4.3
Cubbyのアノテーションの
使い方と似てる感じ。
WebSocketに対応。
永続化層
Doma
2.6.0
S2Daoと同じく2-Way SQL。
Java 8に対応。
新規DaoはDomaで、既存
Daoは少しずつ置き換え。
コンポーネント
フレームワーク
Spring
2.4.3
S2Daoを含んだ既存資産は
DIコンテナがある方が
利用しやすいと判断。
ちょっと詳細
Cubby ->
Spring MVC
CubbyとSpring MVC似てる?
Cubby
@Accept(RequestMethod.GET)
@Path("index")
public ActionResult index() {
return new Forward("/index.vm");
}
Spring MVC
@RequestMapping(path = "/index",
method = RequestMethod.GET)
public String index() {
return "/index.vm";
}
Cubbyから移る
前提なら、
読めば内容が
理解できる近さ
S2Dao ->
Doma 2
S2DaoとDomaのDaoクラス
S2Dao
@S2Dao(bean = Employee.class)
public interface EmployeeDao {
@SqlFile
@Arguments({ ”employeeId” })
Employee findById(Integer employeeId);
}
S2DaoとDomaのDaoクラス
Doma
@Dao
@AnnotateWith(annotations = {
// 生成されたDAO実装クラスに@Componentを付与する
@Annotation(target = AnnotationTarget.CLASS,
type = Component.class),
// 生成されたDAO実装クラスのコンストラクタに
// @Autowiredを付与する
@Annotation(target = AnnotationTarget.CONSTRUCTOR,
type = Autowired.class)})
public interface EmployeeDao {
@Select
Employee selectById(Integer employeeId);
}
S2DaoとDomaの
SQLテンプレート
S2Dao
select
*
from
employee
where
/*IF employeeId != null */
employee_id = /*employeeId*/9999
-- ELSE department_id is null
/*end*/
S2DaoとDomaの
SQLテンプレート
Doma
select
*
from
employee
where
/*%if employeeId != null */
employee_id = /* employeeId */9999
/*%else*/
department_id is null
/*%end*/
差異は少ない
Domaの
公式ドキュメントに
DIコンテナとの
連携方法も
書いてある
どのようにして
移行したのか?
まず
2014〜15年で
Javaを 6 -> 8
Tomcatを 6 -> 8
へ移行しておいた
基盤のバージョンアップは
すでにクリアしている
ただし、Java 8の機能を
駆使したコードは
まだなかった
同時に当時から
少しずつ時間を取り、
メンバーに
Java 8の機能をレクチャー
新FWの学習だけを
進めればよい状態
としていた
さて、
移行後
アプリケーションは
こういう構造に
Application (WAR)
S2Servlet DispatcherServlet
DIコンテナ DIコンテナ
Cubby Action
Service / Logic
S2Dao DAO
Interceptor
MVC Controller
Service / Logic
S2Dao DAO
Interceptor
Doma2 DAO
同一のJS/CSS/テンプレートファイル
1つのアプリケーション
2つのDIコンテナ
DIコンテナそれぞれで
重複して
オブジェクトを
管理することになる
なお、サーバ起動時間、
ヒープ使用量に
大きな差は出ていない
(だいたい
シングルトンなので)
新旧FWの振り分け
Servlet Mapping / Filter
/*
/2/* 左記以外
Cubby ActionMVC Controller
web.xmlで設定
続いて
既存資産の利用
S2Daoを利用している
Service / Logicを
既存資産として
Springでも利用する
つまり、S2Daoの
Daoオブジェクトを
SpringのBeanとして
管理できればよい!
SpringでS2Daoを使う -その1-
n-ichimuraの日記
2006年!
http://d.hatena.ne.jp/n-ichimura/20061119/1163944881
過去にSpring + S2Daoを
検証した方が!
そのコードを参考に
現在の状況に合わせて
実装した
これで無事
SpringでS2Daoが
利用できた!
続いて
Spring MVCでの
課題
Cubby Actionから
Spring MVC Controller
へ書き換えるのは
いいとして
リクエストパラメータ
のバリデーションは
どうしよう?
Cubby標準のバリデーションから
Spring MVCでBean Validation利用へ
JSR-349 Bean Validation 1.1
Method Validationを使う
コントローラのメソッドを対象に
リクエストパラメータの
バリデーション
なぜ
Method Validation
を選んだのか?
Cubbyからの移行なので、
リクエストパラメータ
をModelに入れる
方式に慣れていない
(メンバーが多い)
サービスの性質上、
複雑なバリデーション
はない
メソッドの引数に
アノテーションを
つけるだけの
Method Validation
でよさそう
という判断です
Cubbyでのバリデーション
アクションクラス
@RequestParameter(name = ”hoge”)
public String hoge;
protected ValidationRules rule =
new DefaultValidationRules() {
@Override
protected void initialize() {
add(”hoge”, new RequiredValidator());
}
};
@Validation(rules = ”rule”,
errorPage = ”/error.vm”)
public ActionResult index() {
リクエストパラメータ
を1つずつ
インスタンス変数で
受け取っていた
メソッドバリデーション
コントローラクラス
@Controller
@Validated
public class HogeController {
@RequestMapping(path = “validate",
method = RequestMethod.POST)
public ModelAndView validate(@NotEmpty String s) {
..
}
Spring MVCでは
リクエストパラメータを
コントローラメソッドの
引数で受け取れる
この引数に対して
アノテーションで
バリデーションを
設定する
メソッドバリデーション
コントローラクラス
@Controller
@Validated
public class HogeController {
@RequestMapping(path = “validate",
method = RequestMethod.POST)
public ModelAndView validate(@NotEmpty String s) {
..
}
Bean Validation仕様と
その実装Hibernate
Validator独自の
バリデーションの
アノテーションは
そこそこ用意されている
バリデーション用
アノテーション
@AssertFalse/True
@DecimalMax/Min
@Digits
@Future/Past
@Max/Min
@Null/NotNull
@Pattern
@Size
@CreditCardNumber
@Email
@NotBlank
@NotEmpty
@Range
@URL
@ScriptAssert
etc.
独自のアノテーションも
もちろん作れる
で、
バリデーションエラーに
なったときは?
例外
javax.validation.
ConstraintViolationException
が発生する
この例外を
Springの
ExceptionHandlerで
処理することにする
ExceptionHandler
@ExceptionHandler(value=ConstraintViolationException.class)
public ModelAndView handleValidationFailure(
ConstraintViolationException e) {
Set<ConstraintViolation<?>> v = e.getConstraintViolations();
...
// Cubbyにおけるバリデーション失敗時のJSON構造と合わせる.
// バリデーション対象の変数名をキー、メッセージのリストを値としたMapに
Map<String, List<String>> f = v.stream()
.collect(
toMap(
c ->
((PathImpl)c.getPropertyPath()).getLeafNode().asString(),
c -> {
List<String> l = new ArrayList<>(1);
l.add(c.getMessage());
return l;
}
これでほぼOKなんだけど
困ったことが…
最初SpringでMethod Validationが
動作せずちょっとハマった
Bean Validationはメッセージリソース
を利用できるが、”{0}は必須です”の
{数字}の置換が使えない
困ったこと
SpringでMethod
Validationを使う時は
MethodValidationPostProcessor
をBean登録する、
のだけど…
MethodValidationPostProcessor
インスタンスの生成時に
LocalValidatorFactoryBean
インスタンスをvalidatorとして
セットしましょう
公式リファレンスには
はっきりそうと書いていない感じ
SpringでMethod Validation
が動作せずちょっとハマった
MethodValidationの
Bean設定
@Bean public LocalValidatorFactoryBean l() {
LocalValidatorFactoryBean l = new LocalValidatorFactoryBe...
ReloadableResourceBundleMessageSource r =
new ReloadableResourceBundleMessageSource ();
r.setBasename("classpath:/messages");
l.setValidationMessageSource(r);
return l;
}
@Bean public MethodValidationPostProcessor
m(LocalValidatorFactoryBean l) {
MethodValidationPostProcessor m =
new MethodValidationPostProcessor();
m.setValidator(l);
return m;
}
Bean Validatorでメッセージに
リソースバンドルの値は設定できる
@NotEmpty(message=“{valid.required}”)
Validationのアノテーションの属性値
はリソースバンドルから読める
@Size(min = 2, message = ”{size.min}”)
size.min={min}桁未満は入力できません
Bean Validationでの
リソースバンドルの利用
今使っているこういうのができなさそう
required={0}は必須です
password=パスワード
name=名前
組み合わせて...
“パスワードは必須です”、“名前は必須です”
Bean Validationでの
リソースバンドルの利用
org.hibernate.validator.messageinterpolation.
ResourceBundleMessageInterpolator
を継承して実装した
length={0}は{1}文字以下です
password=パスワード
five=5
@Size(message = ”{length}{0:password}{1:five}”)
出力:パスワードは5文字以下です
組み合わせられる実装を
作った
難点:プロパティのキーを
複数使ったり、キー文字列
が長いと読みづらい
message = "{valid.maxLength}
{0:hoge.fuga.example.title}{1:max}"
よりよい方法があれば
ぜひ教えてください〜
メッセージリソースは
そのままSpring MVCでも
使えるようになった
ここでまったく
別の観点で課題が
既存のユニットテスト
が動かない!
全クラスにユニットテストがある
S2TigerTestCaseクラスを継承
EasyMock + djUnit + JUnit3
ユニットテスト
ラムダ式を書いたら
djUnitの部分で
エラーが発生!
java.lang.Error: djUnit class load error
(Class : com.example.ExampleClass)
at jp.co.dgic.testing.common.DJUnitClassLoader.findClass
(ClassLoader.java:424)
at jp.co.dgic.testing.common.DJUnitClassLoader.loadClass
(DJUnitClassLoader.java:45)
at java.lang.ClassLoader.loadClass
(ClassLoader.java:357)
at com.example.ExampleClassTest.setUp
(ExampleClassTest.java:79)
djUnitでエラーが発生
djUnitはもう
更新がないため、
Java 8に対応していない
内部で利用している
ASM/BCELの
メジャーバージョンアップ
に対応していない
逆に言うと、
djUnitを使っていない
ユニットテストなら
動作する
新規/変更したクラスのユニットテスト
は、クラス単位ですべて書き換えた
JMockit + JUnit4
ユニットテストの書き換え
モックライブラリ
機能が豊富
APIの呼び出し方が少し変わっている
JMockitとは
JMockit or Mockito + PowerMockで検討
JMockitの方が、djUnitを使ったテストコー
ドを単純に書き換えやすそうに感じた
JMockitにした理由
JMockitへの書き換え
S2TigerTestCase + EasyMock + djUnit
public class ExampleActionTest
extends S2TigerTestCase {
private ExampleAction tester;
@EasyMock(register = true)
private ExampleService service;
public void setUp() { ... }
public void recordIndex() {
...
EasyMock.expect(service.something())
.andReturn(serviceResult);
}
public void testIndex() throws Exception {
Forward actual = tester.index();
assertEquals("/hoge/fuga.vm”, ...);
}
JMockitへの書き換え
JMockit
public class ExampleControllerTest {
@Tested
private ExampleController tester;
@Injectable
private ExampleService service;
@Test
public void testIndex() throws Exception {
...
new Expectations(tester) {
{
service.something();
result = serviceResult;
}
};
String actual = tester.index();
assertThat(actual, is("/hoge/fuga.vm"));
}
JMockitでの書き方が
見慣れない感じですね
しかし
チームへの導入で
とくに抵抗はなく、
みな書き換えができた
ちなみに、
移行した機能の
いわゆる結合テストは
すべて手で再実施…
後の方で
発覚したこと
「あ、S2Velocityの
機能も移行しないと
いけないのか」
S2Velocityを使い、Veloctityツールの
インスタンスをS2Containerで
管理していた
Velocityツールとは
テンプレートファイルで利用する
ユーティリティクラス
Velocityの利用
同一のテンプレートファイルを
Springのときでも動作させるためには
同様の仕組みが必要となる
ToolboxManager/VelocityToolboxView
を実装
SpringのコンテナからVelocityContextに
Velocityツールのインスタンスを渡す仕組み
を実装した
Velocityの利用
これで既存の
テンプレートファイルを
そのままSpring MVCから
利用できるようになった
Tipsを2点
Tips(1)
既存クラス
@Component(name = ”example”,
instance = InstanceType.REQUEST)
public class ExampleClass {
スコープの設定
@Componentアノテーションを読み取って
スコープ設定をするSpringのResolverを
作成
Tips(2)
既存クラス
@Component(name = ”example”,
instance = InstanceType.REQUEST)
public class ExampleClass {
Bean名の設定
@Componentアノテーションを
読み取ってBean名を生成する
SpringのBeanNameGeneratorを作成
その他
2時間のミーティング
主に以前との差分、新しい書き方や
意味を説明
ほぼ抵抗なく習得へ進んだ
メンバーへのレクチャー
Springで動作させる機能を増やす
2016年5月現在で3機能なので
機能単位での独立したサービスにする
マイクロサービス化?
企画要件へ利用できるようになった
技術を適用する
WebSocketを使うとユーザにどんな体験を
提供できるか
今後の展望
S2からの移行、
怖くないよ!
ご清聴
ありがとうございました!
Q&A

More Related Content

What's hot

60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacateKinji Akemine
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング佑哉 廣岡
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門tsukasamannen
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方Hiroshi Tokumaru
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxTakayuki Shimizukawa
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムKouhei Sutou
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring土岐 孝平
 

What's hot (20)

Metaspace
MetaspaceMetaspace
Metaspace
 
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring
 

Viewers also liked

Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGIntroduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGToshiaki Maki
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugToshiaki Maki
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)NTT DATA OSS Professional Services
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3日本Javaユーザーグループ
 
将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 Yoshio Kajikuri
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!masakazu matsubara
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Takuya Okada
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Kohei Saito
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugMasatoshi Tada
 

Viewers also liked (9)

Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGIntroduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
 
将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
 

Similar to Seasar2で作った俺たちのサービスの今

DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話JustSystems Corporation
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスYoichi KIKUCHI
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and AgileKazushi Kamegawa
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuoOKUBO_Yusuke
 
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springSwagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springkounan13
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsShuhei Eda
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Shuji Watanabe
 
Qc astah 連携について012
Qc astah 連携について012Qc astah 連携について012
Qc astah 連携について012Kei Nakahara
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaTokyo, Japan
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewMitsuru Ogawa
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれYasuaki Matsuda
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1Y Watanabe
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践慎一 古賀
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発lalha
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfkSpring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk学 松崎
 
日本で DevOps を ロケットスタートする方法
日本で DevOps を  ロケットスタートする方法日本で DevOps を  ロケットスタートする方法
日本で DevOps を ロケットスタートする方法Puppet
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetupNaoya Kojima
 

Similar to Seasar2で作った俺たちのサービスの今 (20)

DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
 
Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuo
 
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springSwagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 
Qc astah 連携について012
Qc astah 連携について012Qc astah 連携について012
Qc astah 連携について012
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_Hasegawa
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfkSpring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
 
日本で DevOps を ロケットスタートする方法
日本で DevOps を  ロケットスタートする方法日本で DevOps を  ロケットスタートする方法
日本で DevOps を ロケットスタートする方法
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetup
 

More from Koichi Sakata

Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMKoichi Sakata
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Koichi Sakata
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Koichi Sakata
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageKoichi Sakata
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVMKoichi Sakata
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyBytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyKoichi Sakata
 
Great Ideas in GraalVM
Great Ideas in GraalVMGreat Ideas in GraalVM
Great Ideas in GraalVMKoichi Sakata
 
Graal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT CompilerGraal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT CompilerKoichi Sakata
 
Kanjava 201804 Java News
Kanjava 201804 Java NewsKanjava 201804 Java News
Kanjava 201804 Java NewsKoichi Sakata
 
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性があるKanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性があるKoichi Sakata
 
from Java EE to Jakarta EE
from Java EE to Jakarta EEfrom Java EE to Jakarta EE
from Java EE to Jakarta EEKoichi Sakata
 
Java release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project AmberJava release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project AmberKoichi Sakata
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
 
KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説Koichi Sakata
 
“Purikura” culture in Japan and our web application architecture
“Purikura” culturein Japan andour web application architecture“Purikura” culturein Japan andour web application architecture
“Purikura” culture in Japan and our web application architectureKoichi Sakata
 
デブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わったデブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わったKoichi Sakata
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているKoichi Sakata
 
日本からJavaOneに行こう!
日本からJavaOneに行こう!日本からJavaOneに行こう!
日本からJavaOneに行こう!Koichi Sakata
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVMKoichi Sakata
 

More from Koichi Sakata (20)

Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyBytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte Buddy
 
Great Ideas in GraalVM
Great Ideas in GraalVMGreat Ideas in GraalVM
Great Ideas in GraalVM
 
Graal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT CompilerGraal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT Compiler
 
Kanjava 201804 Java News
Kanjava 201804 Java NewsKanjava 201804 Java News
Kanjava 201804 Java News
 
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性があるKanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
 
from Java EE to Jakarta EE
from Java EE to Jakarta EEfrom Java EE to Jakarta EE
from Java EE to Jakarta EE
 
Java release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project AmberJava release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project Amber
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説
 
“Purikura” culture in Japan and our web application architecture
“Purikura” culturein Japan andour web application architecture“Purikura” culturein Japan andour web application architecture
“Purikura” culture in Japan and our web application architecture
 
デブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わったデブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わった
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
 
日本からJavaOneに行こう!
日本からJavaOneに行こう!日本からJavaOneに行こう!
日本からJavaOneに行こう!
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVM
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Seasar2で作った俺たちのサービスの今